/*
  将下面异步代码使用 Promise 的方法改进
  尽量用看上去像同步代码的方式
  setTimeout(function () {
    var a = 'hello'
    setTimeout(function () {
      var b = 'lagou'
      setTimeout(function () {
        var c = 'I ♥ U'
        console.log(a + b +c)
      }, 10)
    }, 10)
  }, 10)
*/

function join(str) {
    let promise = new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve(str)
        }, 10);
    })
    return promise;
}

const a = 'hello'
const b = 'lagou'
const c = 'I ♥ U'
join()
    .then(value => join(a))
    .then(value => join(value + b))
    .then(value => join(value + c))
    .then((value) => console.log(value))